package core

type Node struct {
	id int32
	property map[string]string
}

type Edge struct {
	source int32
	target int32
	property map[string]string
}

type BaseGraph interface {
	NumberOfNodes()
	NumberOfEdges()
	AddNode()
	AddEdge()
	AddNodes()
	AddEdges()
	HasNode(id int32)
	HasEdge(source int32, target int32)
}



type Graph struct {
	BaseGraph
	nodes [] Node
	edges [] Edge

}

func (g Graph) NumberOfNodes() int {
	return len(g.nodes)
}

func (g Graph) NumberOfEdges() int {
	return len(g.edges)
}


type DiGraph struct {

}

type HeteroGraph struct {

}